﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Reflection;

namespace PickGold.Util.WordSpliter
{
	/// <summary>
	/// 匹配选项
	/// </summary>
	[Flags]
	public enum MatchOptions : int
	{
		/// <summary>
		/// None
		/// </summary>
		None = BitUtil.B32_ZERO,

		/// <summary>
		/// 未登录词识别
		/// </summary>
		UnknownWordIdentify = BitUtil.B32_00,

		/// <summary>
		/// 中文人名识别
		/// </summary>
		ChineseNameIdentify = BitUtil.B32_01,

		/// <summary>
		/// 词频优先
		/// </summary>
		FrequencyFirst = BitUtil.B32_02,

		/// <summary>
		/// 多元分词
		/// </summary>
		MultiDimensionality = BitUtil.B32_02,

		/// <summary>
		/// 英文多元分词，这个开关，会将英文中的字母和数字分开。
		/// </summary>
		EnglishMultiDimensionality = BitUtil.B32_04,

		/// <summary>
		/// 过滤停用词
		/// </summary>
		FilterStopWords = BitUtil.B32_05,

		/// <summary>
		/// 忽略空格、回车、Tab
		/// </summary>
		IgnoreSpace = BitUtil.B32_06,

		/// <summary>
		/// 强制一元分词
		/// </summary>
		ForceSingleWord = BitUtil.B32_07,

		/// <summary>
		/// 繁体中文开关
		/// </summary>
		TraditionalChineseEnabled = BitUtil.B32_08,

		/// <summary>
		/// 同时输出简体和繁体
		/// </summary>
		OutputSimplifiedTraditional = BitUtil.B32_09,

		/// <summary>
		/// 过滤英文，这个选项只有在过滤停用词选项生效时才有效
		/// </summary>
		FilterEnglish = BitUtil.B32_10,

		/// <summary>
		/// 过滤数字，这个选项只有在过滤停用词选项生效时才有效
		/// </summary>
		FilterNumeric = BitUtil.B32_11,

		/// <summary>
		/// 忽略英文大小写
		/// </summary>
		IgnoreCapital = BitUtil.B32_12,

		/// <summary>
		/// 英文分词
		/// </summary>
		EnglishSegment = BitUtil.B32_13,

		/// <summary>
		/// 同义词输出
		/// </summary>
		/// <remarks>
		/// 同义词输出功能一般用于对搜索字符串的分词，不建议在索引时使用
		/// </remarks>
		SynonymOutput = BitUtil.B32_14,

		/// <summary>
		/// 通配符匹配输出
		/// </summary>
		/// <remarks>
		/// 同义词输出功能一般用于对搜索字符串的分词，不建议在索引时使用
		/// </remarks>
		WildcardOutput = BitUtil.B32_15,

		/// <summary>
		/// 对通配符匹配的结果分词
		/// </summary>
		WildcardSegment = BitUtil.B32_16,

		/// <summary>
		/// 是否进行用户自定义规则匹配
		/// </summary>
		CustomRule = BitUtil.B32_17,

		/// <summary>
		/// Default
		/// </summary>
		Default = UnknownWordIdentify,
	}
}
